/**
 * Copyright 2008 - 2009
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 * 
 * @project loonframework
 * @author chenpeng
 * @email：ceponline@yahoo.com.cn
 * @version 0.1
 */
package loon.utils.debugging;

import java.util.WeakHashMap;

import loon.LSystem;


public class LogFactory {

	final static private WeakHashMap<String, Object> lazyMap = new WeakHashMap<String, Object>(
			LSystem.DEFAULT_MAX_CACHE_SIZE);

	public static Log getInstance(String app) {
		return getInstance(app, 0);
	}

	public static Log getInstance(String app, int type) {
		String key = app.toLowerCase();
		Object obj = lazyMap.get(key);
		if (obj == null) {
			lazyMap.put(key, obj = new Log(app, type));
		}
		return (Log) obj;
	}

	public static Log getInstance(Class<?> clazz) {
		String key = clazz.getName().toLowerCase();
		Object obj = lazyMap.get(key);
		if (obj == null) {
			lazyMap.put(key, obj = new Log(clazz));
		}
		return (Log) obj;
	}

	public static void clear() {
		lazyMap.clear();
	}

}
